perm filename TAK.DES[TIM,LSP] blob
sn#637589 filedate 1981-12-15 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Martin:
C00010 ENDMK
C⊗;
Martin:
Here is the pdp-10 and s-1 code for TAK. I commented the
assembly language one a bit. Originally it was in LAP so that I
could use the same timer for this as for all of my other Lisp
benchmarking, so there could be some transcription errors.
This is very much bummed as you can see. I use the address calculation
hardware to do all my arithmetic and comparisons. I don't check for
stack overflow or underflow, I've transformed the program by folding in
the first arm of the conditional, and I've chosen register conventions to
use DMOVE's everywhere.
Here is the source level equivalent of these optimizations:
(defun btak (x y z)
(prog ()
(cond ((not (< y x))
(return z)))
tak2
(let ((a (let ((c (1- x)))
(cond ((not (< y c)) z)
(t (btak2 c y z)))))
(b (let ((c (1- y)))
(cond ((not (< z c)) x)
(t (btak2 c z x)))))
(c (let ((c (1- z)))
(cond ((not (< x c)) y)
(t (btak2 c x y))))))
(cond ((not (< b a)) (return c))
(t (setq x a
y b
z c)
(go tak2))))))
(defun btak2 (x y z)
(prog ()
tak2
(let ((a (let ((c (1- x)))
(cond ((not (< y c)) z)
(t (btak2 c y z)))))
(b (let ((c (1- y)))
(cond ((not (< z c)) x)
(t (btak2 c z x)))))
(c (let ((c (1- z)))
(cond ((not (< x c)) y)
(t (btak2 c x y))))))
(cond ((not (< b a)) (return c))
(t (setq x a
y b
z c)
(go tak2))))))
(defun timit ()
((laebda (t1 x gt)
(btak 18. 12. 6.)
(setq t1 (- (runtime) t1))
(setq gt (- (status gctime) gt))
(print (list 'runtime
(QUOTIENT (FLOAT (- t1 gt))
1000000.)))
(print (list'cctima~∀$∩@@@@@@QEk←iS∃]`@Q→YP∨π ∧ε/"∀ε∪ββ∧εβαr∃∃∩HhαHλ¬∞];]
≥9*(¬¬*≤⎇≡≥<h\⎇~3,U**#!↓αA≥MNβ P @¬]HA
a ACe∀AgiC
P∂Mβ&CπQβ∂∪∃β∨αXλ.8π:2Yp⊂6 !pge @∃]WkO X∩)YY`~ε∃HλELh_<LT→y3L↑X;λ∞9z0→]2y1P→4πr Apgumenps;↓FASf↓iQJAβ∪↔OWdε@hSαh
@; regiqter∞ P i@LAaQJ↓G←]iI←XAgβ#π∂-bβ⊂↔G∧λ
(≥→-↑≠xX.<P9j_quWεB≥]U@ cadl@∃HAmSα β¬β∧εW=~H⊂_8∧akD~∀4TεF∞[⊃_λl≥9h⊂%E_J"!↔|∧⊂≡λ<P8zZzεE∧\4πpj p,
@QCVd∪α∪⊃β4ππαe6UBc-β""'ppl@=GCiJjAgYα{SM→β→β≠} λ≡Yxk∧εH→P↔\α te@5aP∨K∂∪'/1Q Nε]x
L](_ ⊗Y∀3 8p)∩w5←mJAα 3 3~β?;SzβS#∃∧ε7&∞=0D9→⊂~yP:`3e`λAi<Aakg ~∀'n{[↔∃∧∧2`%→↑≤¬⊃ ∧]r[x:4P≤βpac@∀XAC]⊂AaQJ↓Cggk5aaS←8AP∨→∧∧∩ε@_8 3YP2w7]pπh
∩∩mciCG,ASfAU`∂.Dλ
↑Y+@⊂∀*id, ADJSP bo@QPAI↑↓EWk]⊃b~∧∩$∩∩`/≤¬ε.≡=→f*@H⊃∪)Zβ"f@≤βave@LAC@9∧¬⊗w∨N.V∨&≥xDY=_m∧_;Y∧ εE∧BD@ ;decode,λ
∧∪αk?[↔Jβ¬ "β( ∀_T@D]XopV@1 pgSαs⊂~πMRε∞LN&/∨4 ε∂⊗N|↔ε*dλ↔>⎇;<∞M8πwεB∧@DDNβis @QQCh@DpAESβ!1β;|¬bnv\|↔&OlTε∂⊗α8
4≠p¬ti@ASfA≥←S@;8∧ε}pβ"B,<8∧v % a,(b) ∩w∃Ce@3β∀π∂.α9∨H1P0v≤αeady contai`≥f↓iQJAβ∪'>∞@λ∞2yz`,t.~∀$∩∩%←##'M∧∧V∂⊗β_P≤zp t↓P@/>@λ∞]]z0↔→9P:4→P34`2pπhACIZA←L4⊂λ$⊃⊃∪@>~→(={Y~.M8πw0[↔⊂ ∀ahεdASβ→βC#*β↔;S↔Iβπ≠&+@∩πM↔"ε≤∧[!Q@∧p⊂UpπQTAβ↓3@&≥0A⊃,¬w7H3wP /n ∀∪5←mKZαβ
!T¬∀→αxp) ;save re@MkYhAα{9β≠G4(≤MV␈6Tλλ%E,*→O∞λ""'pπet↓rQ`(hP'7|h $hε⊗@2(fxp) 0↔C9HA` hP'7}h -∀_+&∃_*"!↔|⎇0F⊃ B0⊃Xtpe a(λ@#⊂¬⊂HK<Xλ.-≤∧P 1uit
pus@!PA`YQCVd~(∪[Omα+5β
biM#≠G↓$$↔>7&∂=λ∞<⎇3∞A ¬∧f[{2P K∀3<8
D@ ;z
∪I5←mJAλXZdQ→q`B∩$p∂a∪β⊃P@!9;p≠→tP0@,-1(a$∩∩ggUDb4PK∂ππd∧Rε
E"Hh!_∞↑z~H∞¬≥_:f!αE∧b≠w{2P_T∧ ~@ ¬ε /≤
"!↔yy0~λ30 rst 2 @IKgkYβ#@~@λ≥~T≠_<nD_;⊂→→pr4P~w⊂1FBα ∩∩$p∂;?&K∂¬βF{]βSF)β∂#|¬⊗≡(≠p∪λ1P0yH842P≤αesu@1if~∀$∩∩%←∪↔∂'≤εF/∩≥Ff@⎇y0∩λ8¬s @Q↑AQC
P
βSF)β∪7|εf*?4λ
↑Y#"A≡⎇8@⊂→αxp,[5(λ@1-h$%@<h∞↑zλ⊂~→vx7`2ary @MaCGJ4⊂λ'∂∞K⊂~ε∃Eε∩Hα".l\<[⊂≤H8zt`4 kn @QCS@1∧ε&.∨↑.6N}eqP@!<≠p_~α p, 0↔c∃H∩(L¬'.⎇λ⊂~_uY∧DNβtai@0AeKGβ+@↔≡≥xAQ@εE$→y2SyH8∧he acte@¬XAfZβ β∂?&)α%β,ε6.λπ⊂*~2P9`[p¬ bums are ri@≥Q`⊃β4¬w$≥~~.F@
machine p ←↑8A)QSβ→β'M∧εFF* \↔-h∩+∧
β0∂`(αβS#∃∧kπK4 ∀L
aQ hWM_
L(≥_-F@
D@
∪9
A>-"N@%$∧"C@≤¬a?∂∀Q⊂)U)$g#CE JSR #⊂STRING⊃( '%∩0≥5β"JHαi&dSα
∀~)aG>JL~∃C>∀b`~∃α∩⎇∃Eλh ⊗≥tV∪⊂@ ¬εE→αxp@>∀f`⊂4Tε7¬@i( [βE
@≥↑t'?≠C'⊃α≠@∨Q!⊗n␈elB`,λ≤p_-x26λλπ p@⊃YK@;%h4(≥]w2vElBε7∞¬E@<↑≤⊂∩≠⊂P &xpdl@∃]I:~(∪iS[∃` βSL¬V+λβ"B-]⎇[<e@→P0@,Xεb`!p∧↓:β⊗ DαβP⊂⊗]
∪Uβ≠@∩πL≥3λhαB0~~vry ti`≠JH~∀'|εW'∨L∧@≠pyq`)z ∨β9`∂←↔⊂∧βjαβw#!∧p
o@XABYF4⊂λ',∧p→λ22q`/ut
out`'β#@∩¬<≡6≡O$¬rεNβHkQ ¬∧`3ub rta( iSαk∃I-α@∞M8εrXJX∧
qu`≡Aβ∪S¬1≠ A8⊃↔6≡}nh .8∧ to h@'≤ε&␈≡\8ml≤c"A≥8πp⊗ a( e@&λ4(≥(n⊂22`#out
outstr @7¬`∂∂'β$α`4≠:0⊃\αh∂gKα≠?;∪α5`hR{QP@!8∧0v≥⊂⊂∞
tak1:∪@≡[A;∨αN"ε
L!P@!<Y0~≤βr p@XQg`$~∃iC,dt'∞#⊃β≠G↓1
US 4(≥]w6@<k@→H⊗YT3≡8⊂ ,@∧~∀'&S7AmH .∀_#"A≥\|@⊂≥0p $4⊂λ']x
D¬-*→O∞λ∧V #
∪[=l]H]⊂ABXZβ⊃#≠cαH4(≥]w2ε5ES~Fo∞αHhαB0∩~αh`]1KbAB4⊂λ',∧p→λ8∧akH~∀'n{Y↓T¬∀→αxp),c
∀∪αk?Yβλ¬Bk
h∞∞¬ εE∧[w{↔2αd b0Zf@#4ππαHβ"B,MXεx↔≠2xP !
∪Uβ≠@∩πL≥3⊂@ ¬∧`-ov.d9HABX4jQMq@R~(Lε7.∩h∞∞¬λh
U
∧¬∀∪αS7Al}G$_+⊂~_uYεEαy2z9\α pc,(sp)
λ∧⊂∀,LV≡␈↑@∞A≤α4p⊗ a(λF@λεα`!α@
@)[a`)v+G1βλ¬F&.=x
&⊃ ¬∧`*pπdADαc∪↔∂|εW @ ¬22XwzP⊃h∪CIHαβ 1⎇⊂εα!α@
@=kiGQHAD4PK@⊗/L∧p→λ1⊗∀9\∀@
λ¬')%=+ ⊃hL
22x5c∩∧∃D3∩SAQ L@3uHλ∃α⊂
4!' @$HI`≤<X¬_,j"P⊂b")"TiP'cλ)j)$Sα@∞~∃M)%∨*Dpλ&6⎇10∃~βPλ@ @∧X@"λ¬⊂HKαqq*D⊂π"l∃⊂!,j⊃F@
JMPZ.EQHλA∧αbN@%)zT @ ¬∧gUh∧CHR B~∀%∪∃≠∧ α¬2≥"J>Uα⊃P@!αE)j∀'jb: H∨-5&P→I∧ 15IE~A$Q!∃∀5∀tD
⊂k&%∀pλ∀CE
@QS[J@λπ N⊗β≠p⊃Zβ 2
ti`≠JHpλ'd¬v≡Z∧∧C!826≥αq0o@
P
↓Uαεβ@"Xλ $le`≥HβP4+≠